//package org.ricks.robot.business;
//
//import org.ricks.net.transport.kcp.KcpSession;
//import org.ricks.protocol.ByteBuf;
//import org.ricks.robot.Monitor;
//import org.ricks.robot.RobotInfo;
//import org.ricks.robot.RobotManager;
//import org.ricks.robot.RobotRun;
//import org.ricks.robot.action.RobotCollectCmdAction;
//import proto.common.*;
//
//import java.util.HashMap;
//import java.util.Map;
//import java.util.concurrent.TimeUnit;
//
//public class RobotStageAction {
//
//    /**
//     * 采集，不需要addItem 道具触发
//     */
//    private static RobotCollectCmdAction collectCmdAction = (session, collectId) -> {
//        PBCollectionRewardData pbCollectionRewardData = PBCollectionRewardData.newBuilder()
//                .setItemId(collectId)
//                .build();
//
//
//        PBCollectionData pbCollectionData = PBCollectionData.newBuilder()
//                .setType(1)
//                .addItemIds(collectId)
////                .addItems(pbCollectionRewardData)
//                .build();
//
//        RobotInfo robotInfo = RobotManager.get(session);
//        robotInfo.requestTimeMap.put(FProto.Action.Collecting, System.currentTimeMillis());
//        SceneData sceneData = SceneData.newBuilder().addCollections(pbCollectionData).build();
//
//        Monitor.addActionRequest(session, FProto.Action.Collecting);
//        FProto fProto = FProto.newBuilder()
//                .setKey(FProto.Key.Scene)
//                .setAction(FProto.Action.Collecting)
//                .setSceneData(sceneData)
//                .build();
//
//        byte[] data = fProto.toByteArray();
//
//        ByteBuf buf = new ByteBuf(1024);
//        buf.writeByte((byte) 0x03);
//        buf.writeBytes(data);
//
//        session.send(buf.toArray());
//    };
//
//    private static Map<Integer, Integer> monsterKillCount = new HashMap<>();
//
//    static {
//        for (int i = 1001; i < 1023; i++) {
//            monsterKillCount.put(i , 0);
//        }
//
//        for (int i = 1101; i < 1115; i++) {
//            monsterKillCount.put(i , 0);
//        }
//    }
//
//    public static void killMonster(KcpSession session, int monsterId) {
//
//        RobotInfo robotInfo = RobotManager.get(session);
//        robotInfo.requestTimeMap.put(FProto.Action.MonsterDead, System.currentTimeMillis());
//        PBMonsterData pbMonsterData = PBMonsterData.newBuilder()
//                .setMonsterId(monsterId)
////                .addItemIds(collectId)
////                .setMonsterIndex(monsterKillCount.getOrDefault(monsterId, 0))
//                .setMonsterIndex(1)
//                .build();
//        SceneData sceneData = SceneData.newBuilder()
//                .addMonsters(pbMonsterData)
//                .build();
//
//        Monitor.addActionRequest(session, FProto.Action.MonsterDead);
//        FProto fProto = FProto.newBuilder()
//                .setKey(FProto.Key.Scene)
//                .setAction(FProto.Action.MonsterDead)
//                .setSceneData(sceneData)
//                .build();
//
//        byte[] data = fProto.toByteArray();
//        robotInfo.killMonsterCount ++;
//        ByteBuf buf = new ByteBuf(1024);
//        buf.writeByte((byte) 0x03);
//        buf.writeBytes(data);
//
//        session.send(buf.toArray());
//
//    }
//
//    /**
//     * 协议版本比较旧
//     * @param session
//     */
//    public static void collect(KcpSession session) {
//        PBCollectionRewardData pbCollectionRewardData = PBCollectionRewardData.newBuilder()
//                .setItemId(10801194)
//                .build();
//
//
//        PBCollectionData pbCollectionData = PBCollectionData.newBuilder()
//                .setType(1)
//                .addItemIds(10801194)
////                .addItems(pbCollectionRewardData)
//                .build();
//
//        RobotInfo robotInfo = RobotManager.get(session);
//        robotInfo.requestTimeMap.put(FProto.Action.Collecting, System.currentTimeMillis());
//        SceneData sceneData = SceneData.newBuilder().addCollections(pbCollectionData).build();
//
//        FProto fProto = FProto.newBuilder()
//                .setKey(FProto.Key.Scene)
//                .setAction(FProto.Action.Collecting)
//                .setSceneData(sceneData)
//                .build();
//        Monitor.addActionRequest(session, FProto.Action.Collecting);
//        byte[] data = fProto.toByteArray();
//        robotInfo.collectCount ++;
//        ByteBuf buf = new ByteBuf(1024);
//        buf.writeByte((byte) 0x03);
//        buf.writeBytes(data);
//
//        session.send(buf.toArray());
//    }
//
//    public static void enterDungeonAction(KcpSession session, int dungeonId) {
//        DungeonData dungeonData = DungeonData.newBuilder().setDungeonId(dungeonId).build();
//        PBCharacter pbCharacter1 = PBCharacter.newBuilder().setCharId(101001).build();
//        PBCharacter pbCharacter2 = PBCharacter.newBuilder().setCharId(102001).build();
//        PBCharacter pbCharacter3 = PBCharacter.newBuilder().setCharId(103001).build();
//        RobotInfo robotInfo = RobotManager.get(session);
//        robotInfo.requestTimeMap.put(FProto.Action.DungeonEnter, System.currentTimeMillis());
//        PBTeam pbTeam = PBTeam.newBuilder()
//                .setChar1(pbCharacter1)
//                .setChar2(pbCharacter2)
//                .setChar3(pbCharacter3)
//                .build();
//        Monitor.addActionRequest(session, FProto.Action.DungeonEnter);
//        PBPlayer pbPlayer = PBPlayer.newBuilder().setPbTeam(pbTeam).build();
//        FProto fProto = FProto.newBuilder()
//                .setKey(FProto.Key.Scene)
//                .setAction(FProto.Action.DungeonEnter)
//                .setDungeonData(dungeonData)
//                .setSelf(pbPlayer)
//                .build();
//
//        byte[] data = fProto.toByteArray();
//
//        ByteBuf buf = new ByteBuf(1024);
//        buf.writeByte((byte) 0x03);
//        buf.writeBytes(data);
//
//        session.send(buf.toArray());
//
//    }
//
//    public static void startKillMonsterAction(KcpSession session) {
//        RobotInfo robotInfo = RobotManager.get(session);
//        robotInfo.action = FProto.Action.DungeonEnter;
//        RobotAction.addItem(session, 101001, 1);
//        RobotAction.addItem(session, 102001, 1);
//        RobotAction.addItem(session, 103001, 1);
////        long dungeonTime = RobotAction.taskTimes.get(session) + 3000;
//        RobotRun.scheduledExecutorService.schedule(() -> enterDungeonAction(session, 11101), 1000, TimeUnit.MILLISECONDS);
//
////        int time = 3000;
////        for (int i = 0; i < 500 ; i++) {
////            time = time + 1000;
////            RobotRun.scheduledExecutorService.schedule(() -> collect(session), time, TimeUnit.MILLISECONDS);
////        }
//        //        for (int i = 0; i < 100 ; i++) {
////            dungeonTime += 5000;
////            RobotRun.scheduledExecutorService.schedule(() -> killMonster(session, 1001), dungeonTime, TimeUnit.MILLISECONDS);
//////            collect(session);
////        }
////        RobotAction.taskTimes.put(session, dungeonTime);
//    }
//
//
//}
